package com.liezh.factory.simple;

import com.liezh.factory.RuleConfig;
import com.liezh.factory.IRuleConfigParser;

/**
 * @author liezh
 * @date 2022-5-6
 */
public class RuleConfigSource {

    public RuleConfig load(String configFilePath) {
        String ruleConfigFileExtension = getFileExtension(configFilePath);
        RuleConfigParserFactory ruleConfigParserFactory = new RuleConfigParserFactory();
        // 简单工厂创建
        final IRuleConfigParser parser = ruleConfigParserFactory.createParser(ruleConfigFileExtension);

        String configContent = getFileContent(configFilePath);
        return parser.parse(configContent);
    }

    private String getFileContent(String configFilePath) {
        // mock
        return "{\"a\": 1, \"b\": 2}";
    }

    private String getFileExtension(String configFilePath) {
        // mock
        return "json";
    }
}
